code: public synchronized void insert(final char[] input, Route route) {
  //        System.out.println("inserting " + route.uri);
          TrieNode current = root, child;
          for (char c : input) {
              child = current.nodes[c];
              if(child == null) {
                  child = new TrieNode(c);
                  current.nodes[c] = child;
              }
              current = child;
          }
          //current.endNode = true;
          //current.route = route;
          /*int index = routes.indexOf(route);
          if (index == -1) { 
              index = routes.size(); 
              routes.add(route);
              
              //EnumMap<HttpMethod,Route> map = new EnumMap<>(HttpMethod.class);
              EnumMapR<HttpMethod,Route> map = new EnumMapR<>(HttpMethod.class);
              map.put(method, route);
              enumRoutes.add(map);
          } else {
              enumRoutes.get(index).put(method, route);
          }
          current.routeIndex = index;*/
          current.routes[route.getHttpMethod().ordinal()] = route;
      }
docs: /*public synchronized void insert(final char[] input, Route route) {
  TrieNode current = root, child;
  for (char c : input) {
  child = current.nodes[c];
  if(child == null) {
  child = new TrieNode(c);
  current.nodes[c] = child;
  }
  current = child;
  }
  current.endNode = true;
  current.route = route;
  int index = routes.indexOf(route);
  if (index == -1) { index = routes.size(); routes.add(route);}
  current.routeIndex = index;
  }