Add Matchable for recursive selector support

This isn't really usable by the current API, but it wouldn't be too hard to
enable I don't think. It will be used by the coming DSL, though.