Recognize objects by phrases, not just words

I may have just missed this in the documentation, but is there a way to identify that an object should be recognized by a phrase, rather than just individual words in any order.

(name *) can opener
(item *)
(dict *)
  (just) "can opener"

The above doesn’t work, but represents what I want: you can only identify the can opener as the two words “can opener”, not “can” and/or “opener”.

It’s not covered in the manual, but the following should work.

First, disable the normal keywords:

~(dict #can-opener)

Then, hook into the predicate for understanding a list of words as an object:

(parse object name [can opener] as * $ $)
        (* is in scope)