Okay, I've starting coding to fix this problem. Here is my process and thoughts behind it:
1. Intercept the user input text event (I've found where this is in the User.sc script)
2. Go through the string input, looking for our problematic phrase (basket of goodies) - I hope the string kernel functions will play nice...
3. Replace our phrase with a simpler noun (replace 'basket of goodies' with 'basketofgoodies' or something like it - it will have to be in our vocab file)
4. Throw a new user input text event with our crafted string (I have an inkling of a clue here, please if anyone has done something similar to this before, chime in).
So instead of making the parser do what we want, I'm thinking of boiling down the inputted text to something the parser can deal with, so we can have a Said() string like this:
(if(Said('take/basketofgoodies'))
Print('Finally! You've taken the basket of goodies!')
)