docs: def _get_covered_keys_and_masks(merge, aliases):
      """Get keys and masks which would be covered by the entry resulting from
      the merge.
  
      Parameters
      ----------
      aliases : {(key, mask): {(key, mask), ...}, ...}
          Map of key-mask pairs to the sets of key-mask pairs that they actually
          represent.
  
      Yields
      ------
      (key, mask)
          Pairs of keys and masks which would be covered if the given `merge`
          were to be applied to the routing table.
      """
      # For every entry in the table below the insertion index see which keys
      # and masks would overlap with the key and mask of the merged entry.
      for entry in merge.routing_table[merge.insertion_index:]:
          key_mask = (entry.key, entry.mask)
          keys_masks = aliases.get(key_mask, [key_mask])
  
          for key, mask in keys_masks:
              if intersect(merge.key, merge.mask, key, mask):
                  yield key, mask