          if isinstance(value, basestring):
              value = string_store.add(value)
          elif isinstance(value, bool):
              value = int(value)
          elif isinstance(value, dict):
              continue
          else:
              raise ValueError(Errors.E153.format(vtype=type(value).__name__))
          if attr is not None:
              attr_values.append((attr, value))
 
</s> remove     ([{"IS_DIGIT": -1}], 1, 1),
    ([{"ORTH": -1}], 1, 1),
 </s> add  </s> remove     ([{"LENGTH": "2", "TEXT": 2}, {"LOWER": "test"}], 2, 1),
 </s> add 
        elif isinstance(value, (dict, int)):
          if isinstance(value, basestring):
              value = string_store.add(value)
          elif isinstance(value, bool):
              value = int(value)
        elif isinstance(value, (dict, int)):
              continue
          else:
              raise ValueError(Errors.E153.format(vtype=type(value).__name__))
          if attr is not None:
              attr_values.append((attr, value))
keep keep keep keep replace keep keep keep keep keep
 Allow int values in token patterns (#4444)

* Add missing int value option to top-level pattern validation in Matcher

* Adjust existing tests accordingly

* Add new test for valid pattern `{"LENGTH": int}` 
spacy/matcher/matcher.pyx