code: function(except) {
            var useSelectedArray = angular.isArray(selectedItemsList)
              , isRange = angular.isArray(except) && 2 === except.length
              , allItems = getAllItems()
              , numItemsFound = 0
              , doDeselect = false
              , ixItem;
            if(useSelectedArray) {
              selectedItemsList.length = 0;
            }
            angular.forEach(allItems, function(item) {
              if(isRange) {
                ixItem = except.indexOf(item);
                if(ixItem > -1) {
                  numItemsFound++;
                  doDeselect = false;
                  except.splice(ixItem, 1);
                } else {
                  doDeselect = 1 !== numItemsFound;
                }
              } else {
                doDeselect = item !== except;
              }
              if(doDeselect) {
                item[selectedAttribute] = false;
              } else {
                if(useSelectedArray && item[selectedAttribute]) {
                  selectedItemsList.push(item);
                }
              }
            });
          }
docs: Get us back to a "clean" state. Usually we'll want to skip deselection for items that are about to be selected again to avoid firing the `selection-mode-on-change` handler extra times.  `except` param may be `undefined` (deselect all the things), a single item (don't deselect *that* item), or an array of two items (don't deselect anything between those items inclusively).