          n_threads (int): The number of threads with which to work on the buffer
              in parallel, if the implementation supports multi-threading.
          YIELDS (Doc): Documents, in order.
          """
          for doc in stream:
              self(doc)
              yield doc
  
      def accept_match(self, Doc doc, int start, int end):
          assert (end - start) < self.max_length
          cdef int i, j
          for i in range(self.max_length):
 
</s> remove         assert (end - start) < self.max_length
 </s> add  </s> remove         for i in range(self.max_length):
            self._phrase_key[i] = 0
 </s> add         cdef Pool mem = Pool()
        phrase_key = <attr_t*>mem.alloc(end-start, sizeof(attr_t)) </s> remove     def pipe(self, stream, batch_size=1000, n_threads=2):
 </s> add     def pipe(self, stream, batch_size=1000, n_threads=2, return_matches=False,
             as_tuples=False): </s> remove         for doc in docs:
            if len(doc) >= self.max_length:
                msg = (
                    "Pattern length (%d) >= phrase_matcher.max_length (%d). "
                    "Length can be set on initialization, up to 10."
                )
                raise ValueError(msg % (len(doc), self.max_length))
 </s> add 
        if as_tuples:
            for doc, context in stream:
                matches = self(doc)
                if return_matches:
                    yield ((doc, matches), context)
                else:
                    yield (doc, context)
        else:
            for doc in stream:
                matches = self(doc)
                if return_matches:
                    yield (doc, matches) 
                else:
                    yield doc
          n_threads (int): The number of threads with which to work on the buffer
              in parallel, if the implementation supports multi-threading.
          YIELDS (Doc): Documents, in order.
          """
        if as_tuples:
            for doc, context in stream:
                matches = self(doc)
                if return_matches:
                    yield ((doc, matches), context)
                else:
                    yield (doc, context)
        else:
            for doc in stream:
                matches = self(doc)
                if return_matches:
                    yield (doc, matches) 
                else:
                    yield doc
        if as_tuples:
            for doc, context in stream:
                matches = self(doc)
                if return_matches:
                    yield ((doc, matches), context)
                else:
                    yield (doc, context)
        else:
            for doc in stream:
                matches = self(doc)
                if return_matches:
                    yield (doc, matches) 
                else:
                    yield doc
        if as_tuples:
            for doc, context in stream:
                matches = self(doc)
                if return_matches:
                    yield ((doc, matches), context)
                else:
                    yield (doc, context)
        else:
            for doc in stream:
                matches = self(doc)
                if return_matches:
                    yield (doc, matches) 
                else:
                    yield doc
  
      def accept_match(self, Doc doc, int start, int end):
          assert (end - start) < self.max_length
          cdef int i, j
          for i in range(self.max_length):
keep keep keep keep replace replace replace keep keep keep keep keep
 Revert "Merge branch 'develop' of https://github.com/explosion/spaCy into develop"

This reverts commit c9ba3d3c2dc7067cf8bd55f878cec45a8c6d73d4, reversing
changes made to 92c26a35d425d4e8ca1b805ea776ea10f5ded3df. 
spacy/matcher.pyx