code: public static Router<ServiceConfig> ofVirtualHost(VirtualHost virtualHost, Iterable<ServiceConfig> configs,
                                                        RejectedPathMappingHandler rejectionHandler) {
          requireNonNull(virtualHost, "virtualHost");
          requireNonNull(configs, "configs");
          requireNonNull(rejectionHandler, "rejectionHandler");
  
          final BiConsumer<PathMapping, PathMapping> rejectionConsumer = (mapping, existingMapping) -> {
              try {
                  rejectionHandler.handleDuplicatePathMapping(virtualHost, mapping, existingMapping);
              } catch (Exception e) {
                  logger.warn("Unexpected exception from a {}:",
                              RejectedPathMappingHandler.class.getSimpleName(), e);
              }
          };
  
          return wrapVirtualHostRouter(defaultRouter(configs, ServiceConfig::pathMapping, rejectionConsumer));
      }
docs: Returns the default implementation of the {@link Router} to find a {@link ServiceConfig}.
  It consists of several router implementations which use one of Trie and List. It also includes
  cache mechanism to improve its performance.