<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _find_matching_double(self, args, kwargs):
 """Returns the first matching expectation or allowance. Returns the first allowance or expectation that matches the ones declared. Tries one with specific arguments first, then falls back to an expectation that allows arbitrary arguments. :return: The matching ``Allowance`` or ``Expectation``, if one was found. :rtype: Allowance, Expectation, None """


        expectation = self._find_matching_expectation(args, kwargs)

        if expectation:
            return expectation

        allowance = self._find_matching_allowance(args, kwargs)

        if allowance:
            return allowance