@Override
  public boolean equals(Object o)
  {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    NodePair nodePair = (NodePair) o;

    if (finish != null ? !finish.equals(nodePair.finish) : nodePair.finish != null) return false;
    if (start != null ? !start.equals(nodePair.start) : nodePair.start != null) return false;

    return true;
  }