As far as your problem is concerned I would guess that showSiblings is not working because that value is not getting passed into MDV.gNav.Generator.init as part of that single object parameter.
What do those parameters have to do with the config object? Nothing. So when looking at the config object, you shouldn't be thinking about parameters at all. There's nothing there to indicate anything at all to do with parameters.
Now following that code, there is a function declared that has parameters that use the same names as properties in the config object. Why? I don't know. This is obviously not a complete code segment so I have no ides how this function may be used in the future. But the fact that a completely unrelated function to the config object uses names that are the same has no significance to the config object itself.
I didn't look at your examples closely due to the lack of proper indentation. Please be sure code is properly formatted when posting. Kudos for using code tags, though!
But most of your confusion stems from the fact that you think the alert() function accepts more than one parameter. It doesn't. ."
Also, using alert() as a debugging tool is pretty poor. I'm not sure why you are focusing on it"
Documentation. Failing that, read the code.
If the function needs information, that information is generally passed as parameters"
Why would you want to redefine a parameter name with a local variable?
Your examples aren't serving to help understand your confusion because they rely upon a false assumption (that alert() is a good way to test things, and accepts multiple parameters).