code: function smartParse (str, sep1, sep2) {
    sep1 = sep1 || ';'
    sep2 = sep2 || '='
    if ((typeof str === 'string') && str.indexOf(sep1) >= 0) {
      if (str.indexOf(sep2) >= 0) {
        return parseKeyValue(str, sep1, sep2)
      } else {
        return str.split(sep1)
      }
    }
    return str
  }
docs: Split string into list or key-value-pairs depending on whether
  the given separator chars appear in the string. This is the logic used by
  the old parseInfo function and the default logic used by the new parse
  function unless a specific format is defined for an info key.
  
  Ex.:
  - smartParse('foo') => 'foo'
  - smartParse('foo;bar') => ['foo', 'bar']
  - smartParse('foo=1;bar=2') => {foo: 1, bar: 2}
  
  @private