code: func httpHandlers(routes []*Route) map[string][]*Route {
  	handlers := make(map[string][]*Route, len(validHTTPMethods))
  
  	for _, validMethod := range validHTTPMethods {
  		handlers[validMethod] = []*Route{}
  	}
  
  	for idx, route := range routes {
  		found := false
  		for _, validMethod := range validHTTPMethods {
  			if route.Method == validMethod {
  				found = true
  				break
  			}
  		}
  
  		if !found {
  			LOGHANDLER.Fatal("Unsupported HTTP request method provided. Method:", route.Method)
  			return nil
  		}
  
  		if route.Handlers == nil || len(route.Handlers) == 0 {
  			LOGHANDLER.Fatal("No handlers provided for the route '", route.Pattern, "', method '", route.Method, "'")
  			return nil
  		}
  
  		err := route.init()
  		if err != nil {
  			LOGHANDLER.Fatal("Unsupported URI pattern.", route.Pattern, err)
  			return nil
  		}
  
  		checkDuplicateRoutes(idx, route, routes)
  
  		handlers[route.Method] = append(handlers[route.Method], route)
  	}
  
  	return handlers
  }
docs: // httpHandlers returns all the handlers in a map, for each HTTP method