@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof ImmutableMultivaluedMap)) return false;

    ImmutableMultivaluedMap that = (ImmutableMultivaluedMap) o;

    if (!delegate.equals(that.delegate)) return false;

    return true;
  }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   PathSegmentImpl other = (PathSegmentImpl) obj;
   if (matrixParams == null) {
     if (other.matrixParams != null) return false;
   } else if (!matrixParams.equals(other.matrixParams)) return false;
   if (path == null) {
     if (other.path != null) return false;
   } else if (!path.equals(other.path)) return false;
   return true;
 }
 @Override
 public boolean equals(Object o) {
   return delegate.equals(o);
 }