docs: function (instance, sourceFields, suffixFields) {
          return (function suffixHelper(instance, sourceFields, suffixFields, suffixCount) {
              if (!suffixFields || !Array.isArray(suffixFields)) {
                  return Promise.resolve(null);
              }
  
              if (suffixCount > suffixFields.length) {
                  return Promise.resolve(slugifyFields(instance, slugOptions.source.concat(suffixFields.slice(0))));
              }
  
              var slug = slugifyFields(instance, slugOptions.source.concat(suffixFields.slice(0, suffixCount)));
  
              return checkSlug(slug).then(function (isUnique) {
                  if (isUnique) {
                      return slug;
                  }
  
                  return suffixHelper(instance, sourceFields, suffixFields, suffixCount + 1);
              });
          })(instance, sourceFields, suffixFields, 1);
      }