Index: wp-login.php
===================================================================
--- wp-login.php	(revision 38560)
+++ wp-login.php	(working copy)
@@ -528,6 +528,13 @@
 	 */
 	do_action( 'lost_password' );
 
+	/**
+	 * Fires before the lost password form.
+	 *
+	 * @since 4.7
+	 */
+	do_action( 'pre_lostpassword_form' );
+
 	login_header(__('Lost Password'), '<p class="message">' . __('Please enter your username or email address. You will receive a link to create a new password via email.') . '</p>', $errors);
 
 	$user_login = isset($_POST['user_login']) ? wp_unslash($_POST['user_login']) : '';
@@ -614,6 +621,14 @@
 	if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) {
 		reset_password($user, $_POST['pass1']);
 		setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
+
+		/**
+		 * Fires before the password reset form.
+		 *
+		 * @since 4.7
+		 */
+		do_action( 'pre_resetpass_form' );
+
 		login_header( __( 'Password Reset' ), '<p class="message reset-pass">' . __( 'Your password has been reset.' ) . ' <a href="' . esc_url( wp_login_url() ) . '">' . __( 'Log in' ) . '</a></p>' );
 		login_footer();
 		exit;
@@ -622,6 +637,13 @@
 	wp_enqueue_script('utils');
 	wp_enqueue_script('user-profile');
 
+	/**
+	 * Fires before the password reset form.
+	 *
+	 * @since 4.7
+	 */
+	do_action( 'pre_resetpass_form' );
+
 	login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );
 
 ?>
@@ -719,6 +741,14 @@
 	 * @param string $registration_redirect The redirect destination URL.
 	 */
 	$redirect_to = apply_filters( 'registration_redirect', $registration_redirect );
+
+	/**
+	 * Fires before the registration form.
+	 *
+	 * @since 4.7
+	 */
+	do_action( 'pre_register_form' );
+
 	login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site') . '</p>', $errors);
 ?>
 <form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
@@ -883,6 +913,13 @@
 	if ( $reauth )
 		wp_clear_auth_cookie();
 
+	/**
+	 * Fires before the login form.
+	 *
+	 * @since 4.7
+	 */
+	do_action( 'pre_login_form' );
+
 	login_header(__('Log In'), '', $errors);
 
 	if ( isset($_POST['log']) )
