def search_associations(*associations)
      expanded_associations = Metasploit::Model::Association::Tree.expand(associations)

      @search_association_tree = Metasploit::Model::Association::Tree.merge(
          search_association_tree,
          expanded_associations
      )
    end
def search_associations(*associations)
      expanded_associations = Metasploit::Model::Association::Tree.expand(associations)

      @search_association_tree = Metasploit::Model::Association::Tree.merge(
          search_association_tree,
          expanded_associations
      )
    end
Registers a tree of near and far associations for search.  When a tree is used, all intermediate association
 on the paths are used, so `search_association children: :grandchildren` makes both `children.granchildren`
 *and* `children` as search operator prefixes.

 @example a single search association
   search_associations :children

 @example multiple near associations
   search_associations :first,
                       :second

 @example far association
   search_associations near: :far

 @example multiple far associations
   search_associations near: [
                         :first_far,
                         :second_far
                       ]

 @example mix of near and far associations
   # Keep associations in order by near association names by mixing Symbols and Hash{Symbol => Object}
   search_associations :apple,
                       {
                         banana: :peel
                       },
                       :cucumber


 @param associations [Array<Array, Hash, Symbol>, Hash, Symbol]
 @return [void]
 @see search_association