improve compare-matchers, now work with hash