docs: protected boolean handleUnmatchedRoute(HttpServletRequest httpServletRequest,
        HttpServletResponse httpServletResponse, HttpMethod httpMethod, String requestPath) {
      // If this resource matches a different method[s], error out specially
      List<HttpMethod> otherHttpMethods = new ArrayList<>(HttpMethod.values().length);
  
      for (HttpMethod otherHttpMethod : HttpMethod.values())
        if (httpMethod != otherHttpMethod && routeMatcher.match(otherHttpMethod, requestPath).isPresent())
          otherHttpMethods.add(otherHttpMethod);
  
      // Handle OPTIONS specially by indicating we don't want to invoke the response handler
      // Otherwise, throw an exception indicating a 405
      if (otherHttpMethods.size() > 0) {
        // Always write the Allow header
        httpServletResponse.setHeader("Allow",
          otherHttpMethods.stream().map(method -> method.name()).collect(joining(", ")));
  
        if (httpMethod == HttpMethod.OPTIONS)
          return false;
  
        throw new MethodNotAllowedException(format("%s is not supported for this resource. Supported method%s %s",
          httpMethod, (otherHttpMethods.size() == 1 ? " is" : "s are"),
          otherHttpMethods.stream().map(method -> method.name()).collect(joining(", "))));
      }
  
      // No matching route, and no possible alternatives? It's a 404
      throw new NotFoundException(format("No route was found for %s %s", httpMethod.name(), requestPath));
    }