code: def findAllB(self, tag_name, params=None, fn=None, case_sensitive=False):
          
          output = []
  
          if self.isAlmostEqual(tag_name, params, fn, case_sensitive):
              output.append(self)
  
          breadth_search = self.childs
          for el in breadth_search:
              if el.isAlmostEqual(tag_name, params, fn, case_sensitive):
                  output.append(el)
  
              if el.childs:
                  breadth_search.extend(el.childs)
  
          return output
docs: Simple search engine using `Breadth-first algorithm
          <http://en.wikipedia.org/wiki/Breadth-first_search>`_.
  
          Args:
              tag_name (str): Name of the tag you are looking for. Set to "" if
                              you wish to use only `fn` parameter.
              params (dict, default None): Parameters which have to be present
                     in tag to be considered matching.
              fn (function, default None): Use this function to match tags.
                 Function expects one parameter which is HTMLElement instance.
              case_sensitive (bool, default False): Use case sensitive search.
  
          Returns:
              list: List of :class:`HTMLElement` instances matching your \
                    criteria.