code: static int lowerEdgeIndex( SquareNode node ) {
  		for (int i = 0; i < node.square.size(); i++) {
  			if( isOpenEdge(node,i) ) {
  				int next = addOffset(i,1,node.square.size());
  				if( isOpenEdge(node,next)) {
  					return i;
  				}
  				if( i == 0 ) {
  					int previous = node.square.size()-1;
  					if( isOpenEdge(node,previous)) {
  						return previous;
  					}
  				}
  				return i;
  			}
  		}
  
  		throw new RuntimeException("BUG!");
  	}
docs: Returns the open corner index which is first.  Assuming that there are two adjacent corners.