public Edge remove(Node from, Node to) {
		//remove the edge from the EdgeCollection
		edgeIterator.reset();
		while(edgeIterator.hasNext()){
			Edge edge = edgeIterator.next();
			if((from.ID == edge.startNode.ID)&&(to.ID == edge.endNode.ID)){
				edgeIterator.remove();
				edge.removeEdgeFromGraph(); // does not free the edge
				return edge;
			}
		}
		return null;
	}