I just found that on a button of a circle shape labelAlign is always left if the label has “\n” in it.
local close_menu_button = widget.newButton({
x = display.contentCenterX,
y = display.contentCenterY,
id = "close",
label = "My\nProfile", -- if you remove "\n" it will be centered by default
shape = "circle",
radius = 50,
fontSize = display.contentWidth/15,
labelAlign = "center" -- does not work if "\n" is present
})