'Edges between nodes more than one rank apart are replaced by chains of unit
length edges between temporary nodes.'

def make_chain(self):

    for edge in self.edge_wt:
        if (self.edge_wt[edge] > 1):
            self.transitions[edge[0]].remove(edge[1])
            start = self.result[edge[0]]['x']
            end = self.result[edge[1]]['x']
            for rank in range((start + 1), end):
                if (not self.result.get((rank, 'temp'), False)):
                    self.result[(rank, 'temp')] = {'y': None, 'x': rank, 'mark': 0}
            for rank in range(start, end):
                if (start == rank):
                    self.transitions[edge[0]].append(((rank + 1), 'temp'))
                elif (rank == (end - 1)):
                    self.transitions.setdefault((rank, 'temp'), []).append(edge[1])
                else:
                    self.transitions.setdefault((rank, 'temp'), []).append(((rank + 1), 'temp'))
