@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Edge other = (Edge) obj;
		
		// Edge is undirected. So edge A-B is same as edge B-A
		if(
				(from == other.from && to == other.to) ||
				(from == other.to && to == other.from)
				)
			return true;
		
		return false;
	}