A robust and universal algorithm:
1. "Multistart" method to find the best fit
2. Possible to include LIBOR type rates.
3. Weighted price or yield-to-maturity minimization.
4. Calculates a variaety of error measures.
More details: Kladivko Kamil (2010). The Czech Treasury Yield Curve from 1999 to the Present, Czech Journal of Economics and Finance, 60(4): 307-335