First working version of rules matcher.

Currently handles == via

k :is v