Matcher should overload isequal not ==
Allow composite matchers using &, | and !
Add lots more tests
Add body tests