code: protected void findMatching(Class<? extends T> type, BiPredicate<Class<? extends T>, D> predicate)
  	{
  		traverseType(type, predicate, new HashSet<>());
  	}
docs: Perform matching against the given type. This will go through the
  hierarchy and interfaces of the type trying to find if this map has
  an entry for them.