code: boolean isEquivalent(final Path other) {
          if (pathComponents.isEmpty() && other.pathComponents.isEmpty()) {
              return true;
          }
  
          if (pathComponents.isEmpty() || other.pathComponents.isEmpty()) {
              return false;
          }
  
          final String thisFirst = this.pathComponents.getFirst();
          final String otherFirst = other.pathComponents.getFirst();
  
          final int thisStartIndex;
          final int otherStartIndex;
  
          if ((START_TOKEN.equals(thisFirst) && START_TOKEN.equals(otherFirst))) {
              thisStartIndex = 1;
              otherStartIndex = 1;
          } else if (!START_TOKEN.equals(thisFirst) && !START_TOKEN.equals(otherFirst)) {
              thisStartIndex = 0;
              otherStartIndex = 0;
          } else if (START_TOKEN.equals(thisFirst)) {
              thisStartIndex = 1;
              otherStartIndex = other.pathComponents.indexOf(this.pathComponents.get(1));
          } else {
              thisStartIndex = this.pathComponents.indexOf(other.pathComponents.get(1));
              otherStartIndex = 1;
          }
  
          return !(thisStartIndex == -1 || otherStartIndex == -1)
                  && this.pathComponents.subList(thisStartIndex, this.pathComponents.size()).equals(other.pathComponents.subList(otherStartIndex, other.pathComponents.size()));
      }
docs: Method for testing if two paths are <i>equivalent</i>, including and wildcards. Can't override equals because
  then we cannot satisfy the hashCode contract.
  @param other The path we are comparing against
  @return True if the paths are equivalent, otherwise false