# File lib/rr/method_dispatches/base_method_dispatch.rb, line 14
      def find_double_to_attempt
        matches = DoubleMatches.new(doubles).find_all_matches(args)

        unless matches.exact_terminal_doubles_to_attempt.empty?
          return matches.exact_terminal_doubles_to_attempt.first
        end

        unless matches.exact_non_terminal_doubles_to_attempt.empty?
          return matches.exact_non_terminal_doubles_to_attempt.last
        end

        unless matches.wildcard_terminal_doubles_to_attempt.empty?
          return matches.wildcard_terminal_doubles_to_attempt.first
        end

        unless matches.wildcard_non_terminal_doubles_to_attempt.empty?
          return matches.wildcard_non_terminal_doubles_to_attempt.last
        end

        unless matches.matching_doubles.empty?
          return matches.matching_doubles.first # This will raise a TimesCalledError
        end

        return nil
      end