docs: def run(self, dag:DAGCircuit) -> DAGCircuit:
          """
             Run one pass of optimisation on the circuit and route for the given backend.
  
          :param dag: The circuit to optimise and route
  
          :return: The modified circuit
          """
  
          circ = dagcircuit_to_tk(dag, _DROP_CONDS=self.DROP_CONDS,_BOX_UNKNOWN=self.BOX_UNKNOWN)
          circ, circlay = self.process_circ(circ)
          newdag = tk_to_dagcircuit(circ)
          newdag.name = dag.name 
          finlay = dict()
          for i, qi in enumerate(circlay):
              finlay[('q', i)] = ('q', qi)
          newdag.final_layout = finlay
          return newdag