         return false;
     }
 
-    private static function objectMatchesValues(object:Object, values:Object):Boolean
+    private static function valuesAreSubsetOfObject(values:Object, object:Object):Boolean
     {
         if(!object && !values)
             return true;

        var done:Boolean = false;
        while (!done)
        {
            if (objectMatchesValues(hierarchicalData.getData(current), valuesToMatch))
                return true;

            done = !moveNext();

        var done:Boolean = false;
        while (!done)
        {
            if (valuesAreSubsetOfObject(valuesToMatch, hierarchicalData.getData(current)))
                return true;

            done = !movePrevious();
