code: function unstashString(param, stash) {
    if (!/^:[a-zA-Z][\w.]+$/.test(param)) {
      return param.replace(/([^\\])(:[a-zA-Z][\w.]+)/g, function (param, prefix, prop) {
        return prefix + prop.replace(/:[a-zA-Z][\w.]+/g, function (match) {
          return unstashString(match, stash)
        })
      }).replace(/\\(:[a-zA-Z][\w.]+)/g, '$1')
    }
  
    var name = param.slice(param.indexOf(':') + 1).split('.')[0]
    var pointer = stash[name]
    var params = param.match(/\.\w+/g)
  
    if (params === null) {
      return pointer
    }
  
    for (var j = 0; j < params.length; j++) {
      pointer = pointer[params[j].slice(1)]
    }
  
    return pointer
  }
docs: IDEA: use ES6 template variables