*
@package Array
@dependency core
@description Array manipulation and traversal, "fuzzy matching" against elements, alphanumeric sorting and collation, enumerable methods on Object.

*
function multiMatch(el, match, scope, params) {
    var result = true;
    if(el === match) {
      // Match strictly equal values up front.
      return true;
    } else if(isRegExp(match) && isString(el)) {
      // Match against a regexp
      return regexp(match).test(el);
    } else if(isFunction(match)) {
      // Match against a filtering function
      return match.apply(scope, params);
    } else if(isObject(match) && isObjectPrimitive(el)) {
      // Match against a hash or array.
      iterateOverObject(match, function(key, value) {
        if(!multiMatch(el[key], match[key], scope, [el[key], el])) {
          result = false;
        }
      });
      return result;
    } else {
      return isEqual(el, match);
    }
  }