@Override
	public void addEdge(N from, N to) {
		if(containsNode(from) && containsNode(to) && !containsEdge(from, to)) {
			nodes.get(from).add(new Edge<N>(from, to));
			if(!isDirected) {
				nodes.get(to).add(new Edge<N>(to, from));
			}
		}
	}