When are transactions dropped from the blockchain? 

Suppose I broadcast a transaction to the blockchain, then it is a pending transaction waiting to be mined. 

But when are pending transactions dropped from the blockchain, e.g., if the gas price is too low? Can someone think of other reasons for miners not willing to include the transaction?

If transactions are not discarded at some point, then an enormous amount of pending transactions could result.