    # File lib/action_controller/vendor/html-scanner/html/selector.rb, line 471
        def select_first(root)
          stack = [root]
          while node = stack.pop
            if node.tag? && subset = match(node, true)
              return subset.first if !subset.empty?
            elsif children = node.children
              stack.concat children.reverse
            end
          end
          nil
        end