def with_matching_args(self, *args, **kwargs):
        """Set the last call to expect specific argument values if those arguments exist.

        Unlike :func:`fudge.Fake.with_args` use this if you want to only declare
        expectations about matching arguments.  Any unknown keyword arguments
        used by the app under test will be allowed.

        For example, you can declare positional arguments but ignore keyword arguments:

        .. doctest::

            >>> import fudge
            >>> db = fudge.Fake('db').expects('transaction').with_matching_args('insert')

        With this declaration, any keyword argument is allowed:

        .. doctest::

            >>> db.transaction('insert', isolation_level='lock')
            >>> db.transaction('insert', isolation_level='shared')
            >>> db.transaction('insert', retry_on_error=True)

        .. doctest::
            :hide:

            >>> fudge.clear_expectations()

        .. note::

            you may get more mileage out of :mod:`fudge.inspector` functions as
            described in :func:`fudge.Fake.with_args`

        """
        exp = self._get_current_call()
        if args:
            exp.expected_matching_args = args
        if kwargs:
            exp.expected_matching_kwargs = kwargs
        return self
Set the last call to expect specific argument values if those arguments exist.

        Unlike :func:`fudge.Fake.with_args` use this if you want to only declare
        expectations about matching arguments.  Any unknown keyword arguments
        used by the app under test will be allowed.

        For example, you can declare positional arguments but ignore keyword arguments:

        .. doctest::

            >>> import fudge
            >>> db = fudge.Fake('db').expects('transaction').with_matching_args('insert')

        With this declaration, any keyword argument is allowed:

        .. doctest::

            >>> db.transaction('insert', isolation_level='lock')
            >>> db.transaction('insert', isolation_level='shared')
            >>> db.transaction('insert', retry_on_error=True)

        .. doctest::
            :hide:

            >>> fudge.clear_expectations()

        .. note::

            you may get more mileage out of :mod:`fudge.inspector` functions as
            described in :func:`fudge.Fake.with_args`