# File lib/mechanize/element_matcher.rb, line 3
  def elements_with singular, plural = "#{singular}s"
    class_eval "def \#{plural}_with criteria = {}\ncriteria = if String === criteria then\n{:name => criteria}\nelse\ncriteria.map do |k, v|\nk = :dom_id if k.to_sym == :id\nk = :dom_class if k.to_sym == :class\n[k, v]\nend\nend\n\nf = \#{plural}.find_all do |thing|\ncriteria.all? do |k,v|\nv === thing.send(k)\nend\nend\nyield f if block_given?\nf\nend\n\ndef \#{singular}_with criteria = {}\nf = \#{plural}_with(criteria).first\nyield f if block_given?\nf\nend\n\nalias :\#{singular} :\#{singular}_with\n"
  end