code: protected void eleminateSharedPartialPaths(ElemTemplateElement psuedoVarRecipient, Vector paths)
    {
    	MultistepExprHolder list = createMultistepExprList(paths);
    	if(null != list)
    	{
    		if(DIAGNOSE_MULTISTEPLIST)
          	list.diagnose();
          	
          boolean isGlobal = (paths == m_absPaths);
          	
          // Iterate over the list, starting with the most number of paths, 
          // trying to find the longest matches first.
          int longestStepsCount = list.m_stepCount;
      	for (int i = longestStepsCount-1; i >= 1; i--)
      	{
      		MultistepExprHolder next = list;
          	while(null != next)
          	{
          		if(next.m_stepCount < i)
          			break;
  				list = matchAndEliminatePartialPaths(next, list, isGlobal, i, psuedoVarRecipient);
  				next = next.m_next;
          	}
      	}
    	}
    }
docs: Eliminate the shared partial paths in the expression list.
  
  @param psuedoVarRecipient The recipient of the psuedo vars.
  
  @param paths A vector of paths that hold ExpressionOwner objects,
  which must yield LocationPathIterators.