code: protected void selectMerge( int pruneId , FastQueue<float[]> regionColor ) {
  		// Grab information on the region which is being pruned
  		Node n = pruneGraph.get(pruneId);
  		float[] targetColor = regionColor.get(n.segment);
  
  		// segment ID and distance away from the most similar neighbor
  		int bestId = -1;
  		float bestDistance = Float.MAX_VALUE;
  
  		// Examine all the segments it is connected to to see which one it is most similar too
  		for( int i = 0; i < n.edges.size; i++ ) {
  			int segment = n.edges.get(i);
  			float[] neighborColor = regionColor.get(segment);
  			float d = SegmentMeanShiftSearch.distanceSq(targetColor, neighborColor);
  
  			if( d < bestDistance ) {
  				bestDistance = d;
  				bestId = segment;
  			}
  		}
  
  		if( bestId == -1 )
  			throw new RuntimeException("No neighbors?  Something went really wrong.");
  
  		markMerge(n.segment, bestId);
  	}
docs: Examine edges for the specified node and select node which it is the best match for it to merge with
  
  @param pruneId The prune Id of the segment which is to be merged into another segment
  @param regionColor List of region colors