What scripting language would you recommend for a C++ game project ?

By scripting here I mean not just putting config data in a script, but scripting parts of the projet like some class methods, test specific game loop, etc. To accelerate development and further, allowing players to see some of theses scripts to tweak some aspect of the game.

Some language like Lua benefits some wrappers like luabind, but I used it already (some time ago) and we finally had problems because it didn't support methods redefinition in a context of inheritance.

So what are your sugestions of language / wrappers to use or not to use ? Maybe some great engines have the needed features, they are good answers as long as they are free. Feel free to share experience with some of theses if any, it could help having a better idea.