class Minitest::Runnable

def self.run reporter, options = {}

def self.run reporter, options = {}
  filtered_methods = if options[:filter]
    filter = options[:filter]
    filter = Regexp.new $1 if filter.is_a?(String) && filter =~ %r%/(.*)/%
    self.runnable_methods.find_all { |m|
      filter === m || filter === "#{self}##{m}"
    }
  else
    self.runnable_methods
  end
  if options[:exclude]
    exclude = options[:exclude]
    exclude = Regexp.new $1 if exclude =~ %r%/(.*)/%
    filtered_methods.delete_if { |m|
      exclude === m || exclude === "#{self}##{m}"
    }
  end
  return if filtered_methods.empty?
  with_info_handler reporter do
    filtered_methods.each do |method_name|
      run_one_method self, method_name, reporter
    end
  end
end