One thing this does is if there's a typo in the action, then this silently returns False. Maybe it should raise an exception instead so that it's less likely we have subtle typo bugs?