Using the fact that many microcontroller pins have three states (+V, GND, or "high impedence", you can drive N*(N-1) LEDs from N pins. So the little 8 pin microcontroller like a PIC12Fxxx or an ATtiny11 can drive 20 LEDs on its five available output pins, and still have one pin left for some kind of input.
The current crop of low pin-count microcontrollers (6 pins to 20 pins on
the whole package) are attractively priced and 'cute', but the question
arrises as to how you can make the best use of those pins for common
applications such as driving LEDs.
A direct-connect approach to driving LEDs consumes one pin for each
LED. A traditional multiplexing scheme where rows of LED anodes are
driven by one set of N pins and each row's common cathode is driven by
another set of M pins manages to light N*M LEDs with N+M pins.
However, on a processor with only 5 or fewer outputs (as is the case
with most 8-pin microcontrollers), this barely gets you any more
outputs than direct drive.