Framework for combining matchers