@Override
	public boolean areAdjacent(V v, V u) {

		// TODO need null check.. self loops caused .next() to error.
		// Check that both vertices are in our graph.
		if (v == null || u == null || !vertices.contains(v)
				|| !vertices.contains(u)) {
			return false;
		}

		Iterator<E> vEdgeIter = verticesToEdges.get(v).iterator();

		while (vEdgeIter.hasNext()) {

			E edge = vEdgeIter.next();
			Iterator<V> endVertIter = endVertices(edge).iterator();

			V from = endVertIter.next();
			V to = endVertIter.next();

			if (from.equals(v) && to.equals(u)) {
				return true;
			}
		}

		return false;
	}