anchor.diff:      List<String> pathElements = requestUri.pathSegments;
       // Number of elements in request must match router path
       for (int i = 0; i < routeElements.length; i++) {
  -      if (pathElements[i] == null || routeElements[i] != pathElements[i]) {
  +      if (routeElements[i].isNotEmpty && pathElements[i] == null || routeElements[i] != pathElements[i]) {
           return null;
         }
       }
  
positive.code:       request.response.close();
        return;
      }
      Map<String, String> params = _extractParams(route, request.uri);
      _invokeCallBack(request, route, params);
    }
  
  
negative.code:         List<String> allElements = pathElements[i].split(new RegExp("\[{.\}]")).where((s) => s.isNotEmpty).toList();
          // In case of query parameters some string needs to be ajusted
          if (pathElements[i].contains("?")) {
            String oldPathElement = pathElements[i];
            // Replace element with queryParameters by element (e.g.../test{?id}{?name} -> test)
            // Case /{?id} --> last element not a path element
            if (allElements[0].contains("?")) {
              pathElements.removeAt(i);
            } else {
              // Case /{id}{?name}
              if (oldPathElement[0] == "{") {
                pathElements[i] = oldPathElement;
                parameters[i] = new Set.from([allElements[0]]);
              // Case ../test{?id}
              } else {
                pathElements[i] = allElements[0];
              }
            }
            for (String currentElement in allElements.sublist(1)) {
              queryParameters.add(currentElement.replaceAll("?", ""));
            }
  