def gather_groups(groups)
      groups.map do |g|
        before_all_hooks = g.send(:find_hook, :before, :all, nil, nil)
        if before_all_hooks.any?
          g
        else
          (g.filtered_examples || []) + gather_groups(g.children)
        end
      end.flatten
    end
def gather_groups(groups)
      groups.map do |g|
        before_all_hooks = g.send(:find_hook, :before, :all, nil, nil)
        if before_all_hooks.any?
          g
        else
          (g.filtered_examples || []) + gather_groups(g.children)
        end
      end.flatten
    end
recursively gather groups containing a before(:all) hook, and examples