code: private static Map<RouteDefinition, Method> collect(Class clazz) {
  
  		Map<RouteDefinition, Method> out = getDefinitions(clazz);
  		for (Class inter : clazz.getInterfaces()) {
  
  			Map<RouteDefinition, Method> found = collect(inter);
  			out = join(out, found);
  		}
  
  		Class superClass = clazz.getSuperclass();
  		if (superClass != Object.class && superClass != null) {
  			Map<RouteDefinition, Method> found = collect(superClass);
  			out = join(out, found);
  		}
  
  		return out;
  	}
docs: Gets all route definitions for base class / interfaces and inherited / abstract classes
  
  @param clazz to inspect
  @return collection of all definitions