def link(self, key, location):
        n = self.keyOrder.index(key)
        del self.keyOrder[n]
        try:
            i = self.index_for_location(location)
            if i is not None:
                self.keyOrder.insert(i, key)
            else:
                self.keyOrder.append(key)
        except Exception as e:
            # restore to prevent data loss and reraise
            self.keyOrder.insert(n, key)
            raise e
Returns:
dataset/ETHPy150Open dragondjf/QMarkdowner/markdown/odict.py/OrderedDict.link--crossover with--dataset/ETHPy150Open Axelrod-Python/Axelrod/axelrod/result_set.py/ResultSet.build_wins