docs: function expandProperties(pattern, callback) {
      _emberMetalDebug.assert('A computed property key must be a string', typeof pattern === 'string');
      _emberMetalDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
  
      var parts = pattern.split(SPLIT_REGEX);
      var properties = [parts];
  
      for (var i = 0; i < parts.length; i++) {
        var part = parts[i];
        if (part.indexOf(',') >= 0) {
          properties = duplicateAndReplace(properties, part.split(','), i);
        }
      }
  
      for (var i = 0; i < properties.length; i++) {
        callback(properties[i].join('').replace(END_WITH_EACH_REGEX, '.[]'));
      }
    }