lib/classes/Variables.js/Variables/getDeeperValue
class Variables:  getDeeperValue(deepProperties, valueToPopulate) {
    return BbPromise.reduce(
      deepProperties,
      (reducedValueParam, subProperty) => {
        let reducedValue = reducedValueParam;
        if (_.isString(reducedValue) && reducedValue.match(this.deepRefSyntax)) {
          // build mode
          reducedValue = this.appendDeepVariable(reducedValue, subProperty);
        } else {
          // get mode
          if (typeof reducedValue === 'undefined') {
            reducedValue = {};
          } else if (subProperty !== '' || '' in reducedValue) {
            reducedValue = reducedValue[subProperty];
          }
          if (typeof reducedValue === 'string' && reducedValue.match(this.variableSyntax)) {
            reducedValue = this.makeDeepVariable(reducedValue);
          }
        }
        return BbPromise.resolve(reducedValue);
      },
      valueToPopulate
    );
  }