added basic tests
reworded test
added adjacent requirement
fixed final edge case
added single iteration
factored out potential solutions
made path less generic
added wacky recursion