docs: public static Context discover(Object context, Class<?>... subset) {
  		
  		Set<Class<?>> contextSubset = (subset == null || subset.length == 0)? 
  			contexts.keySet() :new HashSet<Class<?>>(Arrays.asList(subset));
  		
  		Set<Class<?>> contextClasses = contexts.keySet();
  		
  		for (Class<?> contextClass : contextClasses) {
  			
  			if(!contextSubset.contains(contextClass)) continue;
  			
  			if(contextClass.isAssignableFrom(context.getClass())) {
  				
  				return contexts.get(contextClass).resolve(context);
  			}
  		}
  		
  		throw new ContextNotFoundException(context.getClass());
  	}