          # We need to delegate to Language.add_pipe here instead of just writing
          # to Language.pipeline to make sure the configs are handled correctly
          pipe_index = self.pipe_names.index(name)
          self.remove_pipe(name)
          if not len(self.pipeline) or pipe_index == len(self.pipeline):
              # we have no components to insert before/after, or we're replacing the last component
              self.add_pipe(factory_name, name=name, config=config, validate=validate)
          else:
              self.add_pipe(
                  factory_name,
 
</s> remove             if before >= len(self.pipeline) or before < 0:
                err = Errors.E959.format(dir="before", idx=before, opts=self.pipe_names)
 </s> add             if before >= len(self._pipeline) or before < 0:
                err = Errors.E959.format(
                    dir="before", idx=before, opts=self._pipe_names
                ) </s> remove             if after not in self.pipe_names:
                raise ValueError(Errors.E001.format(name=after, opts=self.pipe_names))
            return self.pipe_names.index(after) + 1
 </s> add             if after not in self._pipe_names:
                raise ValueError(Errors.E001.format(name=after, opts=self._pipe_names))
            return self._pipe_names.index(after) + 1 </s> remove         # Important! Not deep copy -- we just want the container (but we also
        # want to support people providing arbitrarily typed nlp.pipeline
        # objects.)
        self.original_pipeline = copy(nlp.pipeline)
        self.metas = {name: nlp.get_pipe_meta(name) for name in names}
        self.configs = {name: nlp.get_pipe_config(name) for name in names}
 </s> add         for name in self.names:
            self.nlp.disable_pipe(name)
        if not len(self._pipeline) or pipe_index == len(self._pipeline):
          # We need to delegate to Language.add_pipe here instead of just writing
          # to Language.pipeline to make sure the configs are handled correctly
          pipe_index = self.pipe_names.index(name)
          self.remove_pipe(name)
        if not len(self._pipeline) or pipe_index == len(self._pipeline):
              # we have no components to insert before/after, or we're replacing the last component
              self.add_pipe(factory_name, name=name, config=config, validate=validate)
          else:
              self.add_pipe(
                  factory_name,
keep keep keep keep replace keep keep keep keep keep
 Allow loaded but disabled components 
spacy/language.py