f6b868bac2
This is how I initially wrote it out, and I think I like it better. Obviously we'll still check individual symbols in execute_command, since some of the matching is disjoint.