docs: def merge(value,
            default='',
            omit_opts=False,
            omit_master=False,
            omit_pillar=False):
      '''
      Retrieves an option based on key, merging all matches.
  
      Same as ``option()`` except that it merges all matches, rather than taking
      the first match.
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' config.merge schedule
      '''
      ret = None
      if not omit_opts:
          if value in __opts__:
              ret = __opts__[value]
              if isinstance(ret, six.string_types):
                  return ret
      if not omit_master:
          if value in __pillar__.get('master', {}):
              tmp = __pillar__['master'][value]
              if ret is None:
                  ret = tmp
                  if isinstance(ret, six.string_types):
                      return ret
              elif isinstance(ret, dict) and isinstance(tmp, dict):
                  tmp.update(ret)
                  ret = tmp
              elif (isinstance(ret, (list, tuple)) and
                      isinstance(tmp, (list, tuple))):
                  ret = list(ret) + list(tmp)
      if not omit_pillar:
          if value in __pillar__:
              tmp = __pillar__[value]
              if ret is None:
                  ret = tmp
                  if isinstance(ret, six.string_types):
                      return ret
              elif isinstance(ret, dict) and isinstance(tmp, dict):
                  tmp.update(ret)
                  ret = tmp
              elif (isinstance(ret, (list, tuple)) and
                      isinstance(tmp, (list, tuple))):
                  ret = list(ret) + list(tmp)
      if ret is None and value in DEFAULTS:
          return DEFAULTS[value]
      return ret or default