For one of my projects, I needed a simple pagination module. The requirements were pretty standard:
- The first and last page should always be displayed
- There should always be the same number of pages displayed for consistency (+- 1)
- There should be maximum code reuse
- It should be easily configurable
- The current page should stand out