code: function navigateSteps(data, _steps, authorization, nocache, resolve, reject){
          if(data && typeof _steps[0] === 'object'){
              var keyToLook = Object.keys(_steps[0]);
              if(data.Items) {
                  data.Items.some(function (item, index) {
                      if(_steps[0] && _steps[0][keyToLook] === item[keyToLook]) { // Match the dataType
                          _steps.shift();
                          if(_steps.length === 0) {
                              resolve(item.Links[0].href); // self href
                              return true; // .some()
                          }
                          else {
                              navigate(item.Links[0].href, _steps, authorization, nocache, resolve, reject);
                              return true; // .some()
                          }
                      }
                      else {
                          if(index + 1 == data.Items.length){
                              reject(new Error('You have objects available in this resource group but the filter {' + keyToLook + ": " + _steps[0][keyToLook] + '} did not return a valid result. Please note data types matter.'));
                          }
                      }
                  });
              }
              else {
                  reject(new Error('{' + keyToLook + ': '+ _steps[0][keyToLook] +'} could not be found in the payload. You don\'t have any objects in this resource group.'));
              }
          }
          else if(data.Links){
              var Links = data.Links;
              Links.some(function(link, index) {
                  if(_steps[0] === link.rel) {
                      _steps.shift();
                      if(_steps.length === 0) {
                          resolve(link.href);
                          return true; // .some()
                      }
                      else {
                          navigate(link.href, _steps, authorization, nocache, resolve, reject);
                          return true; // .some()
                      }
                  }
                  else if(index + 1 == Links.length){
                      reject(new Error('The Link you specified could not be found in the payload'));
                  }
              });
          }
          else {
              reject(new Error('The link you specified could not be found in the payload. Please check host, relativeEntryPoint and steps options.'));
          }
  }
docs: /* Private navigateSteps() function that provides the actual navigation through the HATEOAS links