'Yield distributions for non-duplicate projects in the working set
The yield order is the order in which the items\' path entries were
added to the working set.'

def __iter__(self):

    seen = {}
    for item in self.entries:
        for key in self.entry_keys[item]:
            if (key not in seen):
                seen[key] = 1
                (yield self.by_key[key])
