docs: @Override
      public <T, R> Predicate<UriRouteMatch<T, R>> filter(HttpRequest<?> request) {
  
          ArgumentUtils.requireNonNull("request", request);
  
          if (resolvingStrategies == null || resolvingStrategies.isEmpty()) {
              return (match) -> true;
          }
  
          Optional<String> defaultVersion = defaultVersionProvider == null ? Optional.empty() : Optional.of(defaultVersionProvider.resolveDefaultVersion());
  
          Optional<String> version = resolvingStrategies.stream()
                  .map(strategy -> strategy.resolve(request).orElse(null))
                  .filter(Objects::nonNull)
                  .findFirst();
  
          return (match) -> {
              Optional<String> routeVersion = getVersion(match);
  
              if (routeVersion.isPresent()) {
                  String resolvedVersion = version.orElse(defaultVersion.orElse(null));
                  //no version found and no default version configured
                  if (resolvedVersion == null) {
                      if (LOG.isDebugEnabled()) {
                          LOG.debug("Route specifies a version {} and no version information resolved for request to URI {}", routeVersion.get(), request.getUri());
                      }
                      return true;
                  } else {
                      if (LOG.isDebugEnabled()) {
                          LOG.debug("Route specifies a version {} and the version {} was resolved for request to URI {}", routeVersion.get(), resolvedVersion, request.getUri());
                      }
                      return resolvedVersion.equals(routeVersion.get());
                  }
              } else {
                  //route is not versioned but request is
                  if (version.isPresent()) {
                      if (LOG.isDebugEnabled()) {
                          LOG.debug("Route does not specify a version but the version {} was resolved for request to URI {}", version.get(), request.getUri());
                      }
                      return false;
                  } else {
                      if (LOG.isDebugEnabled()) {
                          LOG.debug("Route does not specify a version and no version was resolved for request to URI {}", request.getUri());
                      }
                      return true;
                  }
              }
          }