get (path, rules) {
    const storedRuleResultPair = this.storage.get(path)
    if (!storedRuleResultPair) return undefined
    const { rules: storedRules, result } = storedRuleResultPair

    const isValidCache = this.checkRulesValidity(path, rules, storedRules)

    const $unwatch = result.$unwatch ? result.$unwatch : () => ({})

    if (!isValidCache) return { $dirty: result.$dirty, $partial: true, $unwatch }
    return result
  }
Returns the matched result if catche is valid
@param {String} path
@param {Object<NormalizedValidator>} rules
@return {{$partial: boolean, $dirty: Ref<Boolean>, $unwatch: function}|undefined|ValidationResult}