recursive ensureViews with optional slot param