def include?(distro_key,single_page_path)
      # If this entity isn't for this distro, bail out
      return false unless distro_keys.include?(distro_key)

      # If we're building a single page, check if we're on the right track.
      if single_page_path.length > 0
        if is_group?
          return false unless single_page_path[depth] == dir
        elsif is_topic?
          return false unless single_page_path[depth] == file
        else
          return false
        end
      elsif is_group?
        # If this is a topic group that -is- okay for this distro, but
        # none of its subitems are okay for this distro, then bail out.
        subitems_for_distro = false
        subitems.each do |subitem|
          if subitem.include?(distro_key,[])
            subitems_for_distro = true
            break
          end
        end
        return false unless subitems_for_distro
      end

      return true
    end
def include?(distro_key,single_page_path)
      # If this entity isn't for this distro, bail out
      return false unless distro_keys.include?(distro_key)

      # If we're building a single page, check if we're on the right track.
      if single_page_path.length > 0
        if is_group?
          return false unless single_page_path[depth] == dir
        elsif is_topic?
          return false unless single_page_path[depth] == file
        else
          return false
        end
      elsif is_group?
        # If this is a topic group that -is- okay for this distro, but
        # none of its subitems are okay for this distro, then bail out.
        subitems_for_distro = false
        subitems.each do |subitem|
          if subitem.include?(distro_key,[])
            subitems_for_distro = true
            break
          end
        end
        return false unless subitems_for_distro
      end

      return true
    end
Is this topic entity or any of its children used in
 the specified distro / single page chain