protected boolean matches(@NotNull T pathComponent, @NotNull C thisComponent) {
      return pathComponent.equals(thisComponent);
    }
protected boolean matches(@NotNull T pathComponent, @NotNull C thisComponent)