Can BPS be used to encrypt a single integer, and restrict the output to a certain range? As per specifications document, 

"We have the natural restriction that at least two characters must be ciphered, i.e. $b \geq 2$"

where each character is represented by an integer of certain cardinality.  So basically a $2$ integer array is the minimum.

However say I want to encrypt a single input integer but restrict it to a certain range.  For example say the cardinality of the integer was $2000$ (so the range of possible values from $0 - 1999$).

Can this be done using BPS?  (i.e. Would it be acceptable to simply input an integer array of size one to the algorithm with the cardinality as the range I want?)

I am trying to encrypt a year, but in a way that does not result in a year greater than current year.
This can't be done in a straightforward way with just BPS, since the straightforward way will result in a year greater than the current one for roughly 80% of ciphertexts (since 9999 is the biggest four-digit ciphertext possible). However, using what's called a "rank-then-encipher" scheme, you can specify an input and output format using a regex, then build an FPE scheme on just the strings matching that regex. See this site for details.

EDIT: Also, I don't know BPS that well but I think the "integer of a certain cardinality" can just be a base-10 digit, so you can encrypt a four-digit year as four characters.