function matches(source) {
      return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
    }
Creates a function that performs a partial deep comparison between a given
object and `source`, returning `true` if the given object has equivalent
property values, else `false`.

**Note:** The created function is equivalent to `_.isMatch` with `source`
partially applied.

Partial comparisons will match empty array and empty object `source`
values against any array or object value, respectively. See `_.isEqual`
for a list of supported value comparisons.

@static
@memberOf _
@since 3.0.0
@category Util
@param {Object} source The object of property values to match.
@returns {Function} Returns the new spec function.
@example

var objects = [
  { 'a': 1, 'b': 2, 'c': 3 },
  { 'a': 4, 'b': 5, 'c': 6 }
];

_.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
// => [{ 'a': 4, 'b': 5, 'c': 6 }]