public void removeEdge(final GraphNode v, final GraphNode w) {
		Assert.isTrue(nodes.containsValue(v), "Graph does not contain " + v);
		Assert.isTrue(nodes.containsValue(w), "Graph does not contain " + w);
		Assert.isTrue(v.succs().contains(w));

		if (removingEdge == 0) {
			succs(v).remove(w);
		} else if (removingEdge != 1) {
			throw new RuntimeException();
		}

		edgeModCount++;
	}