code: List<SquareNode> firstRow1( SquareNode seed ) {
  		for (int i = 0; i < seed.square.size(); i++) {
  			if( isOpenEdge(seed,i) ) {
  				List<SquareNode> list = new ArrayList<>();
  				seed.graph = 0;
  
  				// Doesn't know which direction it can traverse along.  See figure that out
  				// by looking at the node its linked to
  				int corner = seed.edges[i].destinationSide(seed);
  				SquareNode dst = seed.edges[i].destination(seed);
  				int l = addOffset(corner,-1,dst.square.size());
  				int u = addOffset(corner, 1,dst.square.size());
  
  				if( dst.edges[u] != null ) {
  					list.add(seed);
  					if( !addToRow(seed,i,-1,true,list) ) return null;
  				} else if( dst.edges[l] != null ){
  					List<SquareNode> tmp = new ArrayList<>();
  					if( !addToRow(seed,i, 1,true,tmp) ) return null;
  					flipAdd(tmp, list);
  					list.add(seed);
  				} else {
  					// there is only a single node below it
  					list.add(seed);
  				}
  
  				return list;
  			}
  		}
  		throw new RuntimeException("BUG");
  	}
docs: Adds the first row to the list of rows when the seed element has only one edge