Er, you're right and I was wrong.
But I think that what you're asking is a bit odd. Let's suppose that
there's a "north switch" and a "north" direction. Then I agree that you
want "press north" to choose the switch, but on the other hand you want
"go north" to choose the direction. So no global method applying to
every verb is going to work.
The easiest approach is not to have a "north switch" but to call it the
"red switch" or the "round button" or something. Another approach is to
fiddle with the grammar, so you could have:
Verb "press" * noun=Switchable -> Press
* noun -> Press;
where the Switchable() routine discards objects that aren't appropriate
for the "press" routine. Unfortunately, if you take this approach to
extremes, you end up having to rewrite the grammar for every verb!
-- Gareth Rees