public Vertex addToPaths(Vertex v, Vector singlePath) {
		int i = singlePath.size();
		this.setColor(v, gray);
		if (!singlePath.contains(v)) {
			singlePath.add(i++, v);
		}
		while (this.hasWhiteChild(v)) {
			v = this.goToNextWhiteChild(v);
			this.setColor(v, gray);
			singlePath.add(i++, v);
		}

		return v;
	}
This function originally did not return anything.  It returns a vertex
for the purpose of keeping track of which vertex we left off on.  So if we
backtrack, we can copy the portion of the previous path that is contained
in the path we are currently construction.  I tried to do this without
passing v as a parameter and it did not work.  Something funny happened I
suppose with JAVA and pointers.
This  function simply adds to singlePath until there are no more white
children which means we've either reached a sink, or the only vertices
left are repeated meaning we have a loop.
Ghidra/Framework/Generic/src/main/java/ghidra/util/graph/Dominator.java