# File lib/facter/core/directed_graph.rb, line 29
      def tsort
        missing = Set.new(self.values.flatten) - Set.new(self.keys)

        if not missing.empty?
          raise MissingVertex, "Cannot sort elements; cannot depend on missing elements #{missing.to_a}"
        end

        super

      rescue TSort::Cyclic
        raise CycleError, "Cannot sort elements; found the following cycles: #{cycles.inspect}"
      end