code: public MorphoFeatures fromTagString(String str) {
      List<String> feats = Arrays.asList(str.split("\\-"));
      MorphoFeatures mFeats = new MorphoFeatures();
      for(String fPair : feats) {
        String[] keyValue = fPair.split(KEY_VAL_DELIM);
        if(keyValue.length != 2)//Manual state split annotations
          continue;
        MorphoFeatureType fName = MorphoFeatureType.valueOf(keyValue[0].trim());
        mFeats.addFeature(fName, keyValue[1].trim());
      }
      
      return mFeats;
    }
docs: Assumes that the tag string has been formed using a call to getTag(). As such,
  it removes the basic category from the feature string.
  <p>
  Note that this method returns a <b>new</b> MorphoFeatures object. As a result, it
  behaves like a static method, but is non-static so that subclasses can override
  this method.
  
  @param str