You can create a non-persistent entity that has attributes for first name, last name, email, and password, and then create a form to capture this information. On the form you can have a submit or save button that will pass this entity as a parameter and then you can use the create activity to create an account object and set the necessary information (Name and password are only required to create a new account).Then you can commit that new object and show a login page.
Another way would be to use the forgot password module. There is a microflow called “Step1_ShowSignupPage”, you could use this as a navigation item on your anonymous home page. It looks like this microflow will prompt you a user for the first name, last name, and email, and then I think it will send a link to the user to set their password. This requires these modules to also be setup
Hope this helps!